home *** CD-ROM | disk | FTP | other *** search
- // TSMorph - Amiga Morphing program
- // Copyright (C) © 1993 Topicsave Limited
-
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; either version 2 of the License, or
- // any later version.
-
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
-
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software
- // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- // mpaddock@cix.compulink.co.uk
-
- // This code was written a bit quick and includes a
- // lot of hard coded stuff which should be #defined
-
- // Include headers
- #include <proto/exec.h>
- #include <proto/gadtools.h>
- #include <proto/intuition.h>
- #include <proto/diskfont.h>
- #include <proto/graphics.h>
- #include <proto/utility.h>
- #include <proto/asl.h>
- #include <proto/icon.h>
- #include <proto/dos.h>
- #include <libraries/amigaguide.h>
- #include <clib/amigaguide_protos.h>
- #include <pragmas/amigaguide_pragmas.h>
- #define LIBRARIES_MATHFFP_H // Do not include other math stuff
- #include <clib/alib_protos.h>
-
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
-
- #include <intuition/gadgetclass.h>
-
- // following not in 2.02 headers
- #if INCLUDE_VERSION < 37
- LONG Stricmp(UBYTE *string1,UBYTE *string2);
- #pragma libcall UtilityBase Stricmp A2 9802
- #endif
-
- #include "Prefs.h"
-
- struct Library *GadToolsBase;
- struct Library *UtilityBase;
- struct Library *AslBase;
- struct Library *AmigaGuideBase;
-
- struct FileRequester *filereq = NULL;
- char TempFilename[257];
- AMIGAGUIDECONTEXT handle = NULL;
- struct NewAmigaGuide nag = {NULL};
- ULONG ASig = 0;
-
- /* Version string for CLI version */
- char *Version = "$VER: TSMorph-prefs 3.0 (25.2.94)";
-
- // Help nodes
- unsigned char *context[] = {
- "", // 0
- "Main", // 1
- "P-KEEPSETTINGS", // 2
- "P-CHANGEPALETTE",// 3
- "P-CREATEICONS", // 4
- "P-CREATEICONSP", // 5
- "P-OPENMODE", // 6
- "P-PUBSCREEN", // 7
- "P-ZOOM", // 8
- "P-CREATEICONSR", // 9
- "P-DEPTH", // 10
- "P-DX", // 11
- "P-DY", // 12
- "P-LOADSCRIPT", // 13
- "P-MODE", // 14
- "P-POSTSCRIPT", // 15
- "P-PRESCRIPT", // 16
- "P-PUBSCREENR", // 17
- "P-QUALITY", // 18
- "P-SAVEFORMAT", // 19
- "P-ANTIALIAS", // 20
- "P-HELP", // 21
- "P-PREVIEW", // 22
- "P-CUSTOMMODE", // 23
- "P-CUSTOMDEPTH", // 24
- "TSMP-Close", // 25
- "TSMP-Depth", // 26
- "TSMP-Zoom", // 27
- "TSMorph-prefs", // 28
- "TSMP-Save", // 29
- "TSMP-Use", // 30
- "TSMP-Cancel", // 31
- "TSMP-men-Project",// 32
- "TSMP-men-P-Open",// 33
- "TSMP-men-P-SaveAs",// 34
- "TSMP-men-P-Quit",// 35
- "TSMP-men-Edit", // 36
- "TSMP-men-E-ResetD",//37
- "TSMP-men-E-LastS",//38
- "TSMP-men-E-Restore",//39
- "TSMP-men-Settings",//40
- "TSMP-men-S-Icons",//41
- "TSMP-men", //42
- "P-INTEGER", // 43
- };
-
- // Settings
- STRPTR CustomScreen[100] = {"NONE",NULL}; // table of modes - headed by none
- ULONG CustomMode = 0;
- ULONG CustomDepth = 4;
- ULONG DX = 0;
- ULONG DY = 0;
- ULONG RenderMode = 0;
- ULONG SaveFormat = 0;
- ULONG Quality = 75;
- BOOL AntiAlias = FALSE;
- BOOL Integer = FALSE;
- ULONG Depth = 2;
- ULONG Zoom = 1;
- ULONG Palette = 0;
- ULONG OpenMode = 2;
- BOOL KeepPrefs = TRUE;
- BOOL Help = FALSE;
- BOOL ProjectI = TRUE;
- BOOL PrefsI = TRUE;
- BOOL RenderI = FALSE;
-
- // Icons from this program
- BOOL Icons = TRUE;
-
- // Prototypes
- void UpdateGadgets(void);
- void DisableWindow(void);
- void EnableWindow(void);
- void Error(char *ErrorMessage,char *extra);
- void SaveSettings(char *filename);
- void LoadSettings(char *filename);
- BOOL GetAFile(char *name,char *Prompt,ULONG flags);
- void InitParams(UBYTE *string);
- void help(ULONG helpnum);
-
- // Is point in a rectangle
- #define PointInBox(x,y,mx,my,MX,MY) ((x>=mx)&&(y>=my)&&(x<=MX)&&(y<=MY))
-
- struct List NodeList; // Custom mode table
-
- struct Node FirstNode = {0};
-
- /* Disable CTRL-C checking */
- int CXBRK(void) { return(0); }
- int chkabort(void) { return(0); }
- int __regargs __chkabort(void) { return(0); }
-
- int
- main(void) {
- int running = 1;
- struct NameInfo buff;
- ULONG id = INVALID_ID;
- int kount = 1;
- struct Node *MyNode;
- struct AmigaGuideMsg *agm;
- ULONG Signals;
-
- // Initialise Custom list and add "NONE"
- NewList(&NodeList);
- FirstNode.ln_Name = CustomScreen[0];
- AddTail(&NodeList,&FirstNode);
- // try and open amigaguide
- if (AmigaGuideBase = OpenLibrary ("amigaguide.library", 34L)) {
- nag.nag_BaseName = "TSMorph";
- nag.nag_Name = "TSMorph.guide";
- nag.nag_ClientPort = "TSMorph-prefs_HELP";
- nag.nag_Context = context;
- nag.nag_Flags = HTF_NOACTIVATE;
- nag.nag_PubScreen = NULL;
- if (handle = OpenAmigaGuideAsync(&nag, NULL)) {
- ASig = AmigaGuideSignal(handle);
- }
- }
- // Open various libraries
- if (IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",37)) {
- if (GadToolsBase = OpenLibrary("gadtools.library",37)) {
- if (DiskfontBase = OpenLibrary("diskfont.library",36)) {
- if (GfxBase = (struct GfxBase *)OpenLibrary("graphics.library",37)) {
- // build up list of display modes (max ~100)
- id = NextDisplayInfo(id);
- while ((id != INVALID_ID) && (kount < 98)) {
- if (GetDisplayInfoData(NULL,(UBYTE *)&buff,sizeof(struct NameInfo),DTAG_NAME,id)) {
- if ((MyNode = (struct Node *)calloc(1,sizeof(struct Node))) &&
- (CustomScreen[kount] = (STRPTR)strdup(buff.Name))) {
- MyNode->ln_Name = CustomScreen[kount];
- AddTail(&NodeList,MyNode);
- kount++;
- }
- }
- id = NextDisplayInfo(id);
- }
- CustomScreen[kount] = NULL;
- // open other libraries
- if (UtilityBase = OpenLibrary("utility.library",37)) {
- if (AslBase = OpenLibrary("asl.library",37)) {
- if (IconBase = OpenLibrary("icon.library",37)) {
- // get File requester and open window
- if (filereq = (struct FileRequester *)AllocFileRequest()) {
- if (!SetupScreen()) {
- if (!OpenTSMorphPrefsWindow()) {
- // Set up custom modes
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_CustomMode],TSMorphPrefsWnd,NULL,
- GTLV_Labels,&NodeList,
- TAG_END);
- // Load settings from ENV:
- LoadSettings("ENV:TSMorph/TSMorph.prefs");
- // Loop until quit
- while (running) {
- Signals = Wait((ASig) |
- (1L << TSMorphPrefsWnd->UserPort->mp_SigBit));
- // amigaguide stuff
- if (Signals & ASig) {
- if (handle) {
- while (agm = GetAmigaGuideMsg(handle)) {
- switch (agm->agm_Type) {
- case ToolCmdReplyID:
- break;
- case ToolStatusID:
- break;
- default:
- break;
- }
- ReplyAmigaGuideMsg(agm);
- }
- }
- }
- // Normal stuff
- if (Signals & (1L << TSMorphPrefsWnd->UserPort->mp_SigBit)) {
- running = HandleTSMorphPrefsIDCMP();
- }
- // Close everything down
- }
- }
- CloseTSMorphPrefsWindow();
- }
- CloseDownScreen();
- FreeFileRequest(filereq);
- }
- CloseLibrary(IconBase);
- }
- CloseLibrary(AslBase);
- }
- CloseLibrary(UtilityBase);
- }
- CloseLibrary((struct Library *)GfxBase);
- }
- CloseLibrary(DiskfontBase);
- }
- CloseLibrary(GadToolsBase);
- }
- CloseLibrary((struct Library *)IntuitionBase);
- }
- if (AmigaGuideBase) {
- if (handle) {
- CloseAmigaGuide(handle);
- }
- CloseLibrary(AmigaGuideBase);
- }
- return 0;
- }
-
- /* Display help using amigaguide (if available)
- * based on a number
- */
- void
- help(ULONG helpnum) {
- if (handle) {
- SetAmigaGuideContext(handle,helpnum,NULL);
- SendAmigaGuideContext(handle,NULL);
- }
- }
-
-
- int
- CustomDepthClicked( void ) {
- /* routine when gadget "Depth" is clicked. */
- CustomDepth = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- DXClicked( void ) {
- /* routine when gadget "DX" is clicked. */
- DX = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int DYClicked( void ) {
- /* routine when gadget "DY" is clicked. */
- DY = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- ModeClicked( void ) {
- /* routine when gadget "" is clicked. */
- RenderMode = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- SaveFormatClicked( void ) {
- /* routine when gadget "SAVEFORMAT" is clicked. */
- SaveFormat = TSMorphPrefsMsg.Code;
- // only enable Quality on JPEG and JPEGT
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Quality],TSMorphPrefsWnd,NULL,
- GA_Disabled, ((SaveFormat == 5)|(SaveFormat == 6))?FALSE:TRUE,
- TAG_END);
- return 1;
- }
-
- int
- QualityClicked( void ) {
- /* routine when gadget "QUALITY" is clicked. */
- Quality = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- AntiAliasClicked( void ) {
- /* routine when gadget "AntiA" is clicked. */
- AntiAlias = !AntiAlias;
- return 1;
- }
-
- int
- IntegerClicked( void ) {
- /* routine when gadget "Int" is clicked. */
- Integer = !Integer;
- return 1;
- }
-
- int
- DepthClicked( void ) {
- /* routine when gadget "Depth" is clicked. */
- Depth = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- ZoomClicked( void ) {
- /* routine when gadget "Zoom" is clicked. */
- Zoom = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- PaletteClicked( void ) {
- /* routine when gadget "Palette" is clicked. */
- Palette = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- OpenModeClicked( void ) {
- /* routine when gadget "Mode" is clicked. */
- OpenMode = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- HelpClicked( void ) {
- /* routine when gadget "Help" is clicked. */
- Help = !Help;
- return 1;
- }
-
- int
- KeepPrefsClicked( void ) {
- /* routine when gadget "Prefs" is clicked. */
- KeepPrefs = !KeepPrefs;
- return 1;
- }
-
- int
- ProjectClicked( void ) {
- /* routine when gadget "Project" is clicked. */
- ProjectI = !ProjectI;
- return 1;
- }
-
- int
- PrefsClicked( void ) {
- /* routine when gadget "Prefs" is clicked. */
- PrefsI = !PrefsI;
- return 1;
- }
-
- int
- RenderClicked( void ) {
- /* routine when gadget "Render" is clicked. */
- RenderI = !RenderI;
- return 1;
- }
-
- int
- SaveClicked( void ) {
- /* routine when gadget "Save" is clicked. */
- SaveSettings("ENVARC:TSMorph/TSMorph.prefs");
- SaveSettings("ENV:TSMorph/TSMorph.prefs");
- return 0;
- }
-
- int
- UseClicked( void ) {
- /* routine when gadget "Use" is clicked. */
- SaveSettings("ENV:TSMorph/TSMorph.prefs");
- return 0;
- }
-
- int
- CancelClicked( void ) {
- /* routine when gadget "Cancel" is clicked. */
- // nothing
- return 0;
- }
-
- int
- CustomModeClicked( void ) {
- /* routine when gadget "Custom Screen" is clicked. */
- CustomMode = TSMorphPrefsMsg.Code;
- return 1;
- }
-
- int
- PreviewClicked( void ) {
- /* routine when gadget "Preview" is clicked. */
- // display help if required
- if (TSMorphPrefsMsg.Code == 0x5F) {
- help(22);
- }
- return 1;
- }
-
- int
- LoadClicked( void ) {
- /* routine when gadget "Load" is clicked. */
- // display help if required
- if (TSMorphPrefsMsg.Code == 0x5F) {
- help(13);
- }
- return 1;
- }
-
- int
- PreClicked( void ) {
- /* routine when gadget "Pre" is clicked. */
- // display help if required
- if (TSMorphPrefsMsg.Code == 0x5F) {
- help(16);
- }
- return 1;
- }
-
- int
- PostClicked( void ) {
- /* routine when gadget "Post" is clicked. */
- // display help if required
- if (TSMorphPrefsMsg.Code == 0x5F) {
- help(15);
- }
- return 1;
- }
-
- int
- MorphScreenClicked( void ) {
- /* routine when gadget "TSMorph" is clicked. */
- // display help if required
- if (TSMorphPrefsMsg.Code == 0x5F) {
- help(7);
- }
- return 1;
- }
-
- int
- RenderScreenClicked( void ) {
- /* routine when gadget "Render" is clicked. */
- // display help if required
- if (TSMorphPrefsMsg.Code == 0x5F) {
- help(17);
- }
- return 1;
- }
-
- int
- TSMorphPrefsOpen( void ) {
- /* routine when (sub)item "Open..." is selected. */
- LoadSettings(NULL);
- return 1;
- }
-
- int
- TSMorphPrefsSaveAs( void ) {
- /* routine when (sub)item "Save As..." is selected. */
- SaveSettings(NULL);
- return 1;
- }
-
- int
- TSMorphPrefsQuit( void ) {
- /* routine when (sub)item "Quit" is selected. */
- // nothing
- return 0;
- }
-
- int
- TSMorphPrefsResetToDefaults( void ) {
- /* routine when (sub)item "Reset To Defaults" is selected. */
- Zoom = 1;
- Palette = 0;
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_MorphScreen],TSMorphPrefsWnd,NULL,
- GTST_String,"",
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_RenderScreen],TSMorphPrefsWnd,NULL,
- GTST_String,"",
- TAG_END);
- ProjectI = TRUE;
- RenderI = FALSE;
- PrefsI = TRUE;
- KeepPrefs = TRUE;
- Help = FALSE;
- OpenMode = 2;
- SaveFormat = 0;
- Quality = 75;
- AntiAlias = FALSE;
- Integer = FALSE;
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Pre],TSMorphPrefsWnd,NULL,
- GTST_String,"Rexx/Prescript",
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Post],TSMorphPrefsWnd,NULL,
- GTST_String,"Rexx/Postscript",
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Load],TSMorphPrefsWnd,NULL,
- GTST_String,"Rexx/Loadscript",
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Preview],TSMorphPrefsWnd,NULL,
- GTST_String,"Rexx/Preview",
- TAG_END);
- DX = 0;
- DY = 0;
- Depth = 2;
- RenderMode = 0;
- CustomMode = 0;
- CustomDepth = 4;
- UpdateGadgets();
- return 1;
- }
-
- // Update gadgets based on current settings
- void
- UpdateGadgets(void) {
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_CustomDepth],TSMorphPrefsWnd,NULL,
- GTSL_Level,CustomDepth,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_DX],TSMorphPrefsWnd,NULL,
- GTSL_Level,DX,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_DY],TSMorphPrefsWnd,NULL,
- GTSL_Level,DY,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Mode],TSMorphPrefsWnd,NULL,
- GTCY_Active,RenderMode,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_SaveFormat],TSMorphPrefsWnd,NULL,
- GTCY_Active,SaveFormat,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Quality],TSMorphPrefsWnd,NULL,
- GTSL_Level,Quality,
- GA_Disabled, ((SaveFormat == 5)|(SaveFormat == 6))?FALSE:TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_AntiAlias],TSMorphPrefsWnd,NULL,
- GTCB_Checked,AntiAlias,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Integer],TSMorphPrefsWnd,NULL,
- GTCB_Checked,Integer,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Depth],TSMorphPrefsWnd,NULL,
- GTSL_Level,Depth,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Zoom],TSMorphPrefsWnd,NULL,
- GTCY_Active,Zoom,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Palette],TSMorphPrefsWnd,NULL,
- GTCY_Active,Palette,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_OpenMode],TSMorphPrefsWnd,NULL,
- GTCY_Active,OpenMode,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Help],TSMorphPrefsWnd,NULL,
- GTCB_Checked,Help,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_KeepPrefs],TSMorphPrefsWnd,NULL,
- GTCB_Checked,KeepPrefs,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Project],TSMorphPrefsWnd,NULL,
- GTCB_Checked,ProjectI,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Prefs],TSMorphPrefsWnd,NULL,
- GTCB_Checked,PrefsI,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Render],TSMorphPrefsWnd,NULL,
- GTCB_Checked,RenderI,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_CustomMode],TSMorphPrefsWnd,NULL,
- GTLV_Top,CustomMode,
- GTLV_Selected,CustomMode,
- TAG_END);
- }
-
- int
- TSMorphPrefsLastSaved( void ) {
- /* routine when (sub)item "Last Saved" is selected. */
- LoadSettings("ENVARC:TSMorph/TSMorph.prefs");
- return 1;
- }
-
- int
- TSMorphPrefsRestore( void ) {
- /* routine when (sub)item "Restore" is selected. */
- LoadSettings("ENV:TSMorph/TSMorph.prefs");
- return 1;
- }
-
- int
- TSMorphPrefsCreateIcons( void ) {
- /* routine when (sub)item "Create Icons?" is selected. */
- Icons = !Icons;
- return 1;
- }
-
- int
- TSMorphPrefsCloseWindow( void ) {
- /* routine for "IDCMP_CLOSEWINDOW". */
- // nothing
- return 0;
- }
-
- int
- TSMorphPrefsRawKey(void) {
- // Display help if 'Help' pressed
- UWORD X,Y;
- ULONG HNum;
- switch (TSMorphPrefsMsg.Code) {
- case 0x5F:
- X = TSMorphPrefsWnd->MouseX;
- Y = TSMorphPrefsWnd->MouseY;
- if (PointInBox(X,Y,0,0,
- 20,TSMorphPrefsWnd->BorderTop))
- HNum = 25;
- else
- if (PointInBox(X,Y,(TSMorphPrefsWnd->Width - 24),0,
- TSMorphPrefsWnd->Width,TSMorphPrefsWnd->BorderTop))
- HNum = 26;
- else
- if (PointInBox(X,Y,(TSMorphPrefsWnd->Width - 24 - 24),0,
- (TSMorphPrefsWnd->Width - 24),TSMorphPrefsWnd->BorderTop))
- HNum = 27;
- else
- if (PointInBox(X,Y,Rect[GDX_CustomDepth].MinX,Rect[GDX_CustomDepth].MinY,
- Rect[GDX_CustomDepth].MaxX,Rect[GDX_CustomDepth].MaxY))
- HNum = 24;
- else
- if (PointInBox(X,Y,Rect[GDX_DX].MinX,Rect[GDX_DX].MinY,
- Rect[GDX_DX].MaxX,Rect[GDX_DX].MaxY))
- HNum = 11;
- else
- if (PointInBox(X,Y,Rect[GDX_DY].MinX,Rect[GDX_DY].MinY,
- Rect[GDX_DY].MaxX,Rect[GDX_DY].MaxY))
- HNum = 12;
- else
- if (PointInBox(X,Y,Rect[GDX_Mode].MinX,Rect[GDX_Mode].MinY,
- Rect[GDX_Mode].MaxX,Rect[GDX_Mode].MaxY))
- HNum = 14;
- else
- if (PointInBox(X,Y,Rect[GDX_SaveFormat].MinX,Rect[GDX_SaveFormat].MinY,
- Rect[GDX_SaveFormat].MaxX,Rect[GDX_SaveFormat].MaxY))
- HNum = 19;
- else
- if (PointInBox(X,Y,Rect[GDX_Quality].MinX,Rect[GDX_Quality].MinY,
- Rect[GDX_Quality].MaxX,Rect[GDX_Quality].MaxY))
- HNum = 18;
- else
- if (PointInBox(X,Y,Rect[GDX_AntiAlias].MinX,Rect[GDX_AntiAlias].MinY,
- Rect[GDX_AntiAlias].MaxX,Rect[GDX_AntiAlias].MaxY))
- HNum = 20;
- else
- if (PointInBox(X,Y,Rect[GDX_Integer].MinX,Rect[GDX_Integer].MinY,
- Rect[GDX_Integer].MaxX,Rect[GDX_Integer].MaxY))
- HNum = 43;
- else
- if (PointInBox(X,Y,Rect[GDX_Depth].MinX,Rect[GDX_Depth].MinY,
- Rect[GDX_Depth].MaxX,Rect[GDX_Depth].MaxY))
- HNum = 10;
- else
- if (PointInBox(X,Y,Rect[GDX_Zoom].MinX,Rect[GDX_Zoom].MinY,
- Rect[GDX_Zoom].MaxX,Rect[GDX_Zoom].MaxY))
- HNum = 8;
- else
- if (PointInBox(X,Y,Rect[GDX_Palette].MinX,Rect[GDX_Palette].MinY,
- Rect[GDX_Palette].MaxX,Rect[GDX_Palette].MaxY))
- HNum = 3;
- else
- if (PointInBox(X,Y,Rect[GDX_OpenMode].MinX,Rect[GDX_OpenMode].MinY,
- Rect[GDX_OpenMode].MaxX,Rect[GDX_OpenMode].MaxY))
- HNum = 6;
- else
- if (PointInBox(X,Y,Rect[GDX_Help].MinX,Rect[GDX_Help].MinY,
- Rect[GDX_Help].MaxX,Rect[GDX_Help].MaxY))
- HNum = 21;
- else
- if (PointInBox(X,Y,Rect[GDX_KeepPrefs].MinX,Rect[GDX_KeepPrefs].MinY,
- Rect[GDX_KeepPrefs].MaxX,Rect[GDX_KeepPrefs].MaxY))
- HNum = 2;
- else
- if (PointInBox(X,Y,Rect[GDX_Project].MinX,Rect[GDX_Project].MinY,
- Rect[GDX_Project].MaxX,Rect[GDX_Project].MaxY))
- HNum = 4;
- else
- if (PointInBox(X,Y,Rect[GDX_Prefs].MinX,Rect[GDX_Prefs].MinY,
- Rect[GDX_Prefs].MaxX,Rect[GDX_Prefs].MaxY))
- HNum = 5;
- else
- if (PointInBox(X,Y,Rect[GDX_Render].MinX,Rect[GDX_Render].MinY,
- Rect[GDX_Render].MaxX,Rect[GDX_Render].MaxY))
- HNum = 9;
- else
- if (PointInBox(X,Y,Rect[GDX_Save].MinX,Rect[GDX_Save].MinY,
- Rect[GDX_Save].MaxX,Rect[GDX_Save].MaxY))
- HNum = 29;
- else
- if (PointInBox(X,Y,Rect[GDX_Use].MinX,Rect[GDX_Use].MinY,
- Rect[GDX_Use].MaxX,Rect[GDX_Use].MaxY))
- HNum = 30;
- else
- if (PointInBox(X,Y,Rect[GDX_Cancel].MinX,Rect[GDX_Cancel].MinY,
- Rect[GDX_Cancel].MaxX,Rect[GDX_Cancel].MaxY))
- HNum = 31;
- else
- if (PointInBox(X,Y,Rect[GDX_CustomMode].MinX,Rect[GDX_CustomMode].MinY,
- Rect[GDX_CustomMode].MaxX,Rect[GDX_CustomMode].MaxY))
- HNum = 23;
- else
- if (PointInBox(X,Y,Rect[GDX_Preview].MinX,Rect[GDX_Preview].MinY,
- Rect[GDX_Preview].MaxX,Rect[GDX_Preview].MaxY))
- HNum = 22;
- else
- if (PointInBox(X,Y,Rect[GDX_Load].MinX,Rect[GDX_Load].MinY,
- Rect[GDX_Load].MaxX,Rect[GDX_Load].MaxY))
- HNum = 13;
- else
- if (PointInBox(X,Y,Rect[GDX_Pre].MinX,Rect[GDX_Pre].MinY,
- Rect[GDX_Pre].MaxX,Rect[GDX_Pre].MaxY))
- HNum = 16;
- else
- if (PointInBox(X,Y,Rect[GDX_Post].MinX,Rect[GDX_Post].MinY,
- Rect[GDX_Post].MaxX,Rect[GDX_Post].MaxY))
- HNum = 15;
- else
- if (PointInBox(X,Y,Rect[GDX_MorphScreen].MinX,Rect[GDX_MorphScreen].MinY,
- Rect[GDX_MorphScreen].MaxX,Rect[GDX_MorphScreen].MaxY))
- HNum = 7;
- else
- if (PointInBox(X,Y,Rect[GDX_RenderScreen].MinX,Rect[GDX_RenderScreen].MinY,
- Rect[GDX_RenderScreen].MaxX,Rect[GDX_RenderScreen].MaxY))
- HNum = 17;
- else
- HNum = 28;
- help(HNum);
- break;
- }
- return 1;
- }
-
- int
- TSMorphPrefsMenuHelp(void) {
- // Help on a menu
- ULONG HNum;
- // start by reseting any changed menu items
- ClearMenuStrip(TSMorphPrefsWnd);
- if (Icons) {
- (ItemAddress(TSMorphPrefsMenus,FULLMENUNUM(2,0,NOSUB)))->Flags |= CHECKED;
- }
- else {
- (ItemAddress(TSMorphPrefsMenus,FULLMENUNUM(2,0,NOSUB)))->Flags &= ~CHECKED;
- }
- ResetMenuStrip(TSMorphPrefsWnd,TSMorphPrefsMenus);
- // determine and display help node
- switch (TSMorphPrefsMsg.Code) {
- case FULLMENUNUM(0,NOITEM,NOSUB):
- case FULLMENUNUM(0,2,NOSUB):
- HNum = 32;
- break;
- case FULLMENUNUM(0,0,NOSUB):
- HNum = 33;
- break;
- case FULLMENUNUM(0,1,NOSUB):
- HNum = 34;
- break;
- case FULLMENUNUM(0,3,NOSUB):
- HNum = 35;
- break;
- case FULLMENUNUM(1,NOITEM,NOSUB):
- HNum = 36;
- break;
- case FULLMENUNUM(1,0,NOSUB):
- HNum = 37;
- break;
- case FULLMENUNUM(1,1,NOSUB):
- HNum = 38;
- break;
- case FULLMENUNUM(1,2,NOSUB):
- HNum = 39;
- break;
- case FULLMENUNUM(2,NOITEM,NOSUB):
- HNum = 40;
- break;
- case FULLMENUNUM(2,0,NOSUB):
- HNum = 41;
- break;
- default:
- HNum = 42;
- break;
- }
- help(HNum);
- return 1;
- }
-
- extern USHORT __chip BusyPointerData[] =
- {
- 0x0000,0x0000,
- 0x0400,0x07C0,0x0000,0x07C0,0x0100,0x0380,0x0000,0x07E0,
- 0x07C0,0x1FF8,0x1FF0,0x3FEC,0x3FF8,0x7FDE,0x3FF8,0x7FBE,
- 0x7FFC,0xFF7F,0x7EFC,0xFFFF,0x7FFC,0xFFFF,0x3FF8,0x7FFE,
- 0x3FF8,0x7FFE,0x1FF0,0x3FFC,0x07C0,0x1FF8,0x0000,0x07E0,
- 0x0000,0x0000,
- };
-
- struct Requester waitRequest;
-
- void DisableWindow(void) {
- InitRequester(&waitRequest);
- Request(&waitRequest,TSMorphPrefsWnd);
- SetPointer(TSMorphPrefsWnd, BusyPointerData, 16, 16, -6, 0);
- /* Does not actually disable the gadgets any more
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_CustomDepth],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_DX],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_DY],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Mode],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_SaveFormat],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Quality],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_AntiAlias],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Integer],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Depth],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Zoom],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Palette],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_OpenMode],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Help],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_KeepPrefs],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Project],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Prefs],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Render],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Save],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Use],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Cancel],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Preview],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Load],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Pre],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Load],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Post],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_MorphScreen],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_RenderScreen],TSMorphPrefsWnd,NULL,
- GA_Disabled,TRUE,
- TAG_END);
- */
- }
-
- void EnableWindow(void) {
- EndRequest(&waitRequest,TSMorphPrefsWnd);
- ClearPointer(TSMorphPrefsWnd);
- /* gadgets are not disabled anymore
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_CustomDepth],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_DX],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_DY],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Mode],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_SaveFormat],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Quality],TSMorphPrefsWnd,NULL,
- GA_Disabled, ((SaveFormat == 5)|(SaveFormat == 6))?FALSE:TRUE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_AntiAlias],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Integer],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Depth],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Zoom],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Palette],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_OpenMode],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Help],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_KeepPrefs],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Project],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Prefs],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Render],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Save],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Use],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Cancel],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Preview],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Load],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Pre],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Load],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Post],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_MorphScreen],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_RenderScreen],TSMorphPrefsWnd,NULL,
- GA_Disabled,FALSE,
- TAG_END);
- */
- }
-
- // Save settings to a file
- void
- SaveSettings(char *filename) {
- char *ifilename = NULL;
- BPTR fh;
- BOOL ok=TRUE;
- char buffer[65];
- struct DiskObject *MyDiskObject; // The Icon
- char *tstr;
- DisableWindow();
- if (!filename) {
- if (GetAFile("TSMorph.prefs","Save TSMorph Preferences",FILF_SAVE)) {
- ifilename = TempFilename;
- }
- }
- else {
- ifilename = filename;
- }
- if (ifilename) {
- if (fh = Open(ifilename,MODE_NEWFILE)) {
- FPuts(fh,";TSMorph parameters\n");
- FPuts(fh,"CREATEICONS=");
- FPuts(fh,ProjectI?"YES\n":"NO\n");
- FPuts(fh,"CHANGEPALETTE=");
- FPuts(fh,(Palette==2)?"OFF\n":(Palette?"NO\n":"YES\n"));
- FPuts(fh,"ZOOM=");
- FPuts(fh,(Zoom==2)?"OFF\n":(Zoom?"NO\n":"YES\n"));
- FPuts(fh,"OPENMODE=");
- switch (OpenMode) {
- case 0:
- FPuts(fh,"IFILBM\n");
- break;
- case 1:
- FPuts(fh,"ALWAYS\n");
- break;
- case 3:
- FPuts(fh,"REMAP\n");
- break;
- case 4:
- FPuts(fh,"OPAL\n");
- break;
- case 2:
- default:
- FPuts(fh,"IFCOLOURS\n");
- break;
- }
- if (*(tstr = GetString(TSMorphPrefsGadgets[GDX_MorphScreen]))) {
- FPuts(fh,"PUBSCREEN=");
- FPuts(fh,tstr);
- FPuts(fh,"\n");
- }
- else {
- FPuts(fh,";PUBSCREEN=\n");
- }
- if (CustomMode) {
- FPuts(fh,"CUSTOMMODE=");
- FPuts(fh,CustomScreen[CustomMode]);
- FPuts(fh,"\n");
- }
- else {
- FPuts(fh,";CUSTOMMODE=\n");
- }
- sprintf(buffer,"CUSTOMDEPTH=%ld\n",CustomDepth);
- FPuts(fh,buffer);
- FPuts(fh,"PREVIEW=");
- FPuts(fh,GetString(TSMorphPrefsGadgets[GDX_Preview]));
- FPuts(fh,"\n");
- FPuts(fh,"HELP=");
- FPuts(fh,Help?"YES\n":"NO\n");
- FPuts(fh,";Prefs parameters\n");
- FPuts(fh,"CREATEICONSP=");
- FPuts(fh,PrefsI?"YES\n":"NO\n");
- FPuts(fh,"KEEPSETTINGS=");
- FPuts(fh,KeepPrefs?"YES\n":"NO\n");
- FPuts(fh,";TSMorph-render parameters\n");
- FPuts(fh,"CREATEICONSR=");
- FPuts(fh,RenderI?"YES\n":"NO\n");
- sprintf(buffer,"DX=%ld\n",DX);
- FPuts(fh,buffer);
- sprintf(buffer,"DY=%ld\n",DY);
- FPuts(fh,buffer);
- FPuts(fh,"LOADSCRIPT=");
- FPuts(fh,GetString(TSMorphPrefsGadgets[GDX_Load]));
- FPuts(fh,"\n");
- FPuts(fh,"PRESCRIPT=");
- FPuts(fh,GetString(TSMorphPrefsGadgets[GDX_Pre]));
- FPuts(fh,"\n");
- FPuts(fh,"POSTSCRIPT=");
- FPuts(fh,GetString(TSMorphPrefsGadgets[GDX_Post]));
- FPuts(fh,"\n");
- sprintf(buffer,"DEPTH=%ld\n",Depth);
- FPuts(fh,buffer);
- sprintf(buffer,"MODE=%ld\n",RenderMode);
- FPuts(fh,buffer);
- FPuts(fh,"SAVEFORMAT=");
- switch (SaveFormat) {
- case 1:
- FPuts(fh,"OPAL24\n");
- break;
- case 2:
- FPuts(fh,"OPAL24T\n");
- break;
- case 3:
- FPuts(fh,"OPAL24F\n");
- break;
- case 4:
- FPuts(fh,"OPAL24FT\n");
- break;
- case 5:
- FPuts(fh,"JPEG\n");
- break;
- case 6:
- FPuts(fh,"JPEGT\n");
- break;
- case 7:
- FPuts(fh,"PPM\n");
- break;
- case 8:
- FPuts(fh,"BW16\n");
- break;
- case 9:
- FPuts(fh,"BW256\n");
- break;
- case 10:
- FPuts(fh,"HAM6\n");
- break;
- case 11:
- FPuts(fh,"HAM8\n");
- break;
- case 12:
- FPuts(fh,"DCTV3\n");
- break;
- case 13:
- FPuts(fh,"DCTV4\n");
- break;
- case 0:
- default:
- FPuts(fh,"ILBM24\n");
- break;
- }
- sprintf(buffer,"QUALITY=%ld\n",Quality);
- FPuts(fh,buffer);
- if (*(tstr = GetString(TSMorphPrefsGadgets[GDX_RenderScreen]))) {
- FPuts(fh,"PUBSCREENR=");
- FPuts(fh,tstr);
- FPuts(fh,"\n");
- }
- else {
- FPuts(fh,";PUBSCREENR=\n");
- }
- FPuts(fh,"ANTIALIAS=");
- FPuts(fh,AntiAlias?"YES\n":"NO\n");
- FPuts(fh,"INTEGER=");
- FPuts(fh,Integer?"YES\n":"NO\n");
- if (Icons) {
- if (MyDiskObject = GetDiskObject(ifilename)) {
- FreeDiskObject(MyDiskObject);
- }
- else {
- if ((MyDiskObject = GetDiskObject("ENV:TSMorph/def_prefs")) ||
- (MyDiskObject = GetDiskObject("ENV:SYS/def_prefs")) ||
- (MyDiskObject = GetDefDiskObject(WBPROJECT))) {
- PutDiskObject(ifilename,MyDiskObject);
- FreeDiskObject(MyDiskObject);
- }
- }
- }
- if (!Close(fh)) {
- ok = FALSE;
- }
- }
- else {
- ok = FALSE;
- }
- }
- if (!ok) {
- Error("Error Saving Preferences\n'%s'",ifilename);
- }
- // Why does this call UpdateGadgets()???
- UpdateGadgets();
- EnableWindow();
- }
-
- // Load settings from a file
- void
- LoadSettings(char *filename) {
- BPTR fh;
- BOOL ok=TRUE;
- char string[65];
- char *ifilename = NULL;
-
- DisableWindow();
- if (!filename) {
- if (GetAFile("TSMorph.prefs","Load TSMorph Preferences",0)) {
- ifilename = TempFilename;
- }
- }
- else {
- ifilename = filename;
- }
- if (ifilename) {
- TSMorphPrefsResetToDefaults();
- if (fh = Open(ifilename,MODE_OLDFILE)) {
- // If we have found a file the relevant lines
- while (FGets(fh,string,64)) {
- // remove newline
- string[strlen(string)-1] = '\0';
- // ignore blank and comment lines
- if (string[0] && (string[0]!=';')) {
- // Clone settings in memory
- InitParams(string);
- }
- }
- Close(fh);
- }
- else {
- ok=FALSE;
- }
- }
- if (!ok) {
- Error("Error Loading Preferences\n'%s'",ifilename);
- }
- UpdateGadgets();
- EnableWindow();
- }
-
- /* Display an error message
- * ErrorMessage : The main text
- * extra : extra text
- */
- void
- Error(char *ErrorMessage,char *extra) {
- struct EasyStruct EasyStruct = {
- sizeof(struct EasyStruct),
- 0,
- NULL,
- NULL,
- NULL
- };
- UBYTE *title = "TSMorph-prefs Error";
- EasyStruct.es_TextFormat = ErrorMessage;
- EasyStruct.es_Title = title;
- EasyStruct.es_GadgetFormat = "OK";
- EasyRequest(TSMorphPrefsWnd,&EasyStruct,NULL,extra);
- }
-
- /* Shows ASL file requester for a file
- * name : current file name
- * Prompt: Title
- * flags : e.g. for save flag
- * Returns: TRUE if file selected, name is TempFileName
- */
- BOOL
- GetAFile(char *name,char *Prompt,ULONG flags) {
- // Split of directory name
- strncpy(TempFilename,name,PathPart(name) - name);
- TempFilename[PathPart(name) - name] = 0;
- // Show requesters
- if (AslRequestTags((APTR) filereq,
- ASL_Hail,(Tag) Prompt,
- ASL_FuncFlags,flags,
- ASL_Dir, (Tag) TempFilename,
- ASL_File,(Tag) FilePart(name),
- ASL_Window, TSMorphPrefsWnd,
- TAG_DONE)) {
- // rejoin name
- strncpy(TempFilename,filereq->rf_Dir,256);
- AddPart(TempFilename,filereq->rf_File,256);
- return TRUE;
- }
- else {
- return FALSE;
- }
- }
-
- // Initialize settings values from parameters
- void
- InitParams(UBYTE *string) {
- UBYTE *s[2] = {NULL,NULL};
- char *s1;
- int kount;
-
- s[0] = string;
-
- if (s1 = FindToolType(s,"CREATEICONS")) {
- ProjectI = MatchToolValue(s1,"YES");
- }
- if (s1 = FindToolType(s,"CHANGEPALETTE")) {
- if (MatchToolValue(s1,"YES")) {
- Palette = 0;
- }
- else {
- if (MatchToolValue(s1,"OFF")) {
- Palette = 2;
- }
- else {
- Palette = 1;
- }
- }
- }
- if (s1 = FindToolType(s,"ZOOM")) {
- if (MatchToolValue(s1,"YES")) {
- Zoom = 0;
- }
- else {
- if (MatchToolValue(s1,"OFF")) {
- Zoom = 2;
- }
- else {
- Zoom = 1;
- }
- }
- }
- if (s1 = FindToolType(s,"OPENMODE")) {
- if (MatchToolValue(s1,"IFILBM")) {
- OpenMode = 0;
- }
- else {
- if (MatchToolValue(s1,"ALWAYS")) {
- SaveFormat = 1;
- }
- else {
- if (MatchToolValue(s1,"REMAP")) {
- SaveFormat = 3;
- }
- else {
- if (MatchToolValue(s1,"OPAL")) {
- SaveFormat = 4;
- }
- else {
- SaveFormat = 2;
- }
- }
- }
- }
- }
- if (s1 = FindToolType(s,"PUBSCREEN")) {
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_MorphScreen],TSMorphPrefsWnd,NULL,
- GTST_String,s1,
- TAG_END);
- }
- if (s1 = FindToolType(s,"CUSTOMMODE")) {
- CustomMode = 0;
- for (kount = 0;
- CustomScreen[kount];
- kount++) {
- if (!Stricmp(CustomScreen[kount],s1)) {
- CustomMode = kount;
- }
- }
- }
- if (s1 = FindToolType(s,"CUSTOMDEPTH")) {
- StrToLong(s1,(LONG *)&CustomDepth);
- }
- if (s1 = FindToolType(s,"PREVIEW")) {
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Preview],TSMorphPrefsWnd,NULL,
- GTST_String,s1,
- TAG_END);
- }
- if (s1 = FindToolType(s,"HELP")) {
- Help = MatchToolValue(s1,"YES");
- }
- if (s1 = FindToolType(s,"CREATEICONSP")) {
- PrefsI = MatchToolValue(s1,"YES");
- }
- if (s1 = FindToolType(s,"KEEPSETTINGS")) {
- KeepPrefs = MatchToolValue(s1,"YES");
- }
- if (s1 = FindToolType(s,"CREATEICONSR")) {
- RenderI = MatchToolValue(s1,"YES");
- }
- if (s1 = FindToolType(s,"DX")) {
- StrToLong(s1,(LONG *)&DX);
- }
- if (s1 = FindToolType(s,"DY")) {
- StrToLong(s1,(LONG *)&DY);
- }
- if (s1 = FindToolType(s,"LOADSCRIPT")) {
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Load],TSMorphPrefsWnd,NULL,
- GTST_String,s1,
- TAG_END);
- }
- if (s1 = FindToolType(s,"PRESCRIPT")) {
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Pre],TSMorphPrefsWnd,NULL,
- GTST_String,s1,
- TAG_END);
- }
- if (s1 = FindToolType(s,"POSTSCRIPT")) {
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_Post],TSMorphPrefsWnd,NULL,
- GTST_String,s1,
- TAG_END);
- }
- if (s1 = FindToolType(s,"DEPTH")) {
- StrToLong(s1,(LONG *)&Depth);
- }
- if (s1 = FindToolType(s,"MODE")) {
- StrToLong(s1,(LONG *)&RenderMode);
- }
- if (s1 = FindToolType(s,"SAVEFORMAT")) {
- if (MatchToolValue(s1,"OPAL24")) {
- SaveFormat = 1;
- }
- else {
- if (MatchToolValue(s1,"OPAL24T")) {
- SaveFormat = 2;
- }
- else {
- if (MatchToolValue(s1,"OPAL24F")) {
- SaveFormat = 3;
- }
- else {
- if (MatchToolValue(s1,"OPAL24FT")) {
- SaveFormat = 4;
- }
- else {
- if (MatchToolValue(s1,"JPEG")) {
- SaveFormat = 5;
- }
- else {
- if (MatchToolValue(s1,"JPEGT")) {
- SaveFormat = 6;
- }
- else {
- if (MatchToolValue(s1,"PPM")) {
- SaveFormat = 7;
- }
- else {
- if (MatchToolValue(s1,"BW16")) {
- SaveFormat = 8;
- }
- else {
- if (MatchToolValue(s1,"BW256")) {
- SaveFormat = 9;
- }
- else {
- if (MatchToolValue(s1,"HAM6")) {
- SaveFormat = 10;
- }
- else {
- if (MatchToolValue(s1,"HAM8")) {
- SaveFormat = 11;
- }
- else {
- if (MatchToolValue(s1,"DCTV3")) {
- SaveFormat = 12;
- }
- else {
- if (MatchToolValue(s1,"DCTV4")) {
- SaveFormat = 13;
- }
- else {
- SaveFormat = 0;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- if (s1 = FindToolType(s,"QUALITY")) {
- StrToLong(s1,(LONG *)&Quality);
- }
- if (s1 = FindToolType(s,"PUBSCREENR")) {
- GT_SetGadgetAttrs(TSMorphPrefsGadgets[GDX_RenderScreen],TSMorphPrefsWnd,NULL,
- GTST_String,s1,
- TAG_END);
- }
- if (s1 = FindToolType(s,"ANTIALIAS")) {
- AntiAlias = MatchToolValue(s1,"YES");
- }
- if (s1 = FindToolType(s,"INTEGER")) {
- Integer = MatchToolValue(s1,"YES");
- }
- }
-